/*
 * vim:foldmethod=marker:
 */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdint.h>

#define N_MAX 100

int
main(void)
{
	static int AM[N_MAX][N_MAX];
	int n, m, i, j, l, r;

	scanf("%d%d", &n, &m);
	for (i = 0; i < m; i++) {
		(void) scanf("%d %d", &l, &r);
		l--,r--;
		AM[l][r]++;
	}
	for (i = 0; i < n; i++)
		if (AM[i][i]) {
			puts("NO");
			return 0;
		}
	for (i = 0; i < n; i++) {
		for (j = i + 1; j < n; j++) {
			if (AM[i][j] == 0 && AM[j][i] == 0) {
				puts("NO");
				return 0;
			}
		}
	}
	puts("YES");
	return 0;
}
